﻿using WcfAdvice.AOP;
using System;
using System.Diagnostics;
using System.IO;
using System.ServiceModel;

namespace WcfAdvice
{
    // 注意: 使用“重构”菜单上的“重命名”命令，可以同时更改代码、svc 和配置文件中的类名“Service1”。
    // 注意: 为了启动 WCF 测试客户端以测试此服务，请在解决方案资源管理器中选择 Service1.svc 或 Service1.svc.cs，然后开始调试。
    [ServiceBehavior(IncludeExceptionDetailInFaults = true)]
    public class Service1 : IService1, IDisposable
    {
        public void Dispose()
        {
            Trace.WriteLine("Dispose");
        }

        //[Logger, TokenVerify]
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }


        public ResponseResult GetAccessToken(Stream stream)
        {
            try
            {
                string inputStr = PubClass.GetStreamData(stream);
                return null;
            }
            catch (Exception ex)
            {
                throw;
            }
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }

    }
}
